package org.xdq.代理模式;

import org.xdq.代理模式.impl.Boss;
import org.xdq.代理模式.impl.Mishu;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class Test {

    static void fun(Inviter inviter){
        inviter.invite();
    }

    public static void main(String[] args) throws IllegalAccessException, InstantiationException {

        Inviter inviterProxy =  Utils.getInviterProxy(
                Boss.class,
                Inviter.class,
                new BeforeAfterAction() {
                    @Override
                    public void before() {
                        System.out.println("大家好！");
                    }

                    @Override
                    public void after() {
                        System.out.println("再见！");
                    }
                }
        );

        inviterProxy.invite();

        // 建议面试写法

        //        Inviter target = new Boss();
        //
        //        Inviter proxy = new Mishu(target);
        //
        //        //proxy.invite();




//        fun(proxy);
//
//
//
//        String s = new String();
//        Class c = String.class;//用来描述String这个类的对象(元类对象)
//
//        Object obj = c.newInstance();
//
//        System.out.println(obj instanceof  String);

    }
}
